// G4提供的头文件
#include "G4RunManager.hh"
#include "G4Event.hh"

// 用户编写的头文件
#include "G4BasicEventAction.hh"
#include "G4BasicRunAction.hh"

// 构造函数，参数为runAction
G4BasicEventAction::G4BasicEventAction(G4BasicRunAction* runAction)
: fRunAction(runAction){}

// 析构函数
G4BasicEventAction::~G4BasicEventAction(){}

// 此函数每个event开始前运行
void G4BasicEventAction::BeginOfEventAction(const G4Event*){
    
    fEdep = 0.0;                    // 每个event开始前，将能量沉积置零
}

// 此函数每个event结束后运行一次
void G4BasicEventAction::EndOfEventAction(const G4Event*){
   
    fRunAction->AddEdep(fEdep);     // 每个event结束后，将本次event能量沉积值交给runAction
}

// 在steppingAction中运行，累加每个step的能量沉积
void G4BasicEventAction::AddEdep(G4double edep){
    
    fEdep += edep;                  // 累加step中沉积的能量
}